Linux开发

推荐列表 站点导航

当前位置:首页 > 服务器技术 > Linux开发 >

Linux下的c基础编程——按原顺序插入元素

来源:互联网  作者:网友投稿  发布时间:2021-01-06 21:48
我们有了选择法排序,现在我们将用它进行一个小规模的扩展,今天我们写一个插入函数,其中我们先用选择法对数...

我们有了选择法排序,现在我们将用它进行一个小规模的扩展,今天我们写一个插入函数,其中我们先用选择法对数组进行排序,再按照原顺序进行插入一个元素。

 

首先我们还是来展示一下我们的代码,这个代码的长度相比于前几篇的代码都要长一些。

 

#include <stdio.h>

void choic_arrage(int a[10])/*先通过选择法对数组元素进行排序*/  

{  

int i;  

int j;  

int k;  

int temp;

for(i = 0; i < 10; i++)  

{  

k = i;

for(j = i+1; j < 10; j++)  

{  

if(a[k] > a[j])  

{  

k = j;  

}  

}

if(k != i)  

{  

temp = a[k];  

a[k] = a[i];  

a[i] = temp;  

}  

}

for(i = 0; i < 10; i++)  

{  

printf("%-3d",a[i]);  

}  

printf("\n");  

}

int  compare(int a[10],int n) /*输入要插入的数字,计算出它将插入的位置*/  

{  

int i;

for(i = 0; i < 10; i++)  

{  

if(i != 9)  

{  

if(a[i] < n && n < a[i+1])  

{  

return i+1;  

}  

}  

else  

{  

printf("error!\n");  

}  

}  

}

void insert(int a[10],int b[11],int m,int n)  /*插入数字,并在数组b【11】中打印出来*/  

{  

int i;

for(i = 0; i < m; i++)  

{  

b[i] = a[i];  

}  

b[m] = n;  

for(i = m; i < 10; i++)  

{  

b[i+1] = a[i];  

}  

for(i = 0; i < 11; i++)  

{  

printf("%-3d",b[i]);  

}  

printf("\n");  

}

int main()  

{  

int a[10];  

int b[11];  

int i;  

int n;  

int m;

for(i = 0; i < 10; i++)  

{  

scanf("%d",&a[i]);  

}

choic_arrage(a);

printf("please input n!\n");  

scanf("%d",&n);

m = compare(a,n);  

printf("%d\n",m);  

insert(a,b,m,n);

return 0;  

}

 

这次代码稍微长了一些,可能是我自己的思路有问题,如果大家有什么好的建议,请提出,我们互相学习互相进步。

 

下面将在Linux下编译运行这个程序。运行结果见下图:

Linux下的c基础编程——按原顺序插入元素

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/server/kaifa/11618.shtml

相关文章
Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

Linux下的c基础编程——按原顺序插入元素

2021-01-06 编辑:网友投稿

我们有了选择法排序,现在我们将用它进行一个小规模的扩展,今天我们写一个插入函数,其中我们先用选择法对数组进行排序,再按照原顺序进行插入一个元素。

 

首先我们还是来展示一下我们的代码,这个代码的长度相比于前几篇的代码都要长一些。

 

#include <stdio.h>

void choic_arrage(int a[10])/*先通过选择法对数组元素进行排序*/  

{  

int i;  

int j;  

int k;  

int temp;

for(i = 0; i < 10; i++)  

{  

k = i;

for(j = i+1; j < 10; j++)  

{  

if(a[k] > a[j])  

{  

k = j;  

}  

}

if(k != i)  

{  

temp = a[k];  

a[k] = a[i];  

a[i] = temp;  

}  

}

for(i = 0; i < 10; i++)  

{  

printf("%-3d",a[i]);  

}  

printf("\n");  

}

int  compare(int a[10],int n) /*输入要插入的数字,计算出它将插入的位置*/  

{  

int i;

for(i = 0; i < 10; i++)  

{  

if(i != 9)  

{  

if(a[i] < n && n < a[i+1])  

{  

return i+1;  

}  

}  

else  

{  

printf("error!\n");  

}  

}  

}

void insert(int a[10],int b[11],int m,int n)  /*插入数字,并在数组b【11】中打印出来*/  

{  

int i;

for(i = 0; i < m; i++)  

{  

b[i] = a[i];  

}  

b[m] = n;  

for(i = m; i < 10; i++)  

{  

b[i+1] = a[i];  

}  

for(i = 0; i < 11; i++)  

{  

printf("%-3d",b[i]);  

}  

printf("\n");  

}

int main()  

{  

int a[10];  

int b[11];  

int i;  

int n;  

int m;

for(i = 0; i < 10; i++)  

{  

scanf("%d",&a[i]);  

}

choic_arrage(a);

printf("please input n!\n");  

scanf("%d",&n);

m = compare(a,n);  

printf("%d\n",m);  

insert(a,b,m,n);

return 0;  

}

 

这次代码稍微长了一些,可能是我自己的思路有问题,如果大家有什么好的建议,请提出,我们互相学习互相进步。

 

下面将在Linux下编译运行这个程序。运行结果见下图:

Linux下的c基础编程——按原顺序插入元素

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/server/kaifa/11618.shtml

相关文章

风云图片

推荐阅读

返回Linux开发频道首页